package grails.plugin.lightweightdeploy;
import com.google.common.io.ByteStreams;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class Utils {
public static boolean deleteDir(final File dir) {
if (!dir.exists()) {
return true;
}
if (!dir.isDirectory()) {
return false;
}
File[] files = dir.listFiles();
if (files == null) {
return false;
}
boolean result = true;
for (File file : files) {
if (file.isDirectory()) {
if (!deleteDir(file)) {
result = false;
}
}
else {
if (!file.delete()) {
result = false;
}
}
}
if (!dir.delete()) {
result = false;
}
return result;
}
public static void unzip(ZipEntry entry, ZipFile zipfile, File explodedDir) throws IOException {
if (entry.isDirectory()) {
new File(explodedDir, entry.getName()).mkdirs();
return;
}
File outputFile = new File(explodedDir, entry.getName());
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
BufferedInputStream inputStream = new BufferedInputStream(zipfile.getInputStream(entry));
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFile));
try {
ByteStreams.copy(inputStream, outputStream);
}
finally {
outputStream.close();
inputStream.close();
}
}
}